In some computer implementations, when a task is executing, a visual cue is provided to a user to show the user that the task is executing. An example of a visual cue is an iconic rendering of an hourglass or a clock, which indicates to the user that the task is running but has not yet completed. While this visual cue is somewhat informative, it does not provide any indication to the user as to how much progress has been made. Thus, the user is given no information with which to determine how long the task will take to complete.
In other computer implementations, the user is provided with more information. More specifically, while a task is executing, the user is provided with information that suggests the rate at which the task is progressing. As an example, information about the number of bytes that have been downloaded out of a total number of bytes to be downloaded can be presented. Similarly, a bar or meter may be shown that indicates the percentage of the task that has been completed. This information is updated as execution of the task progresses. Thus, with this information, the user can determine whether progress is being made by the task, and can approximate how much longer it will take to complete the task. In some implementations, the information presented to the user even specifies approximately how long it will take for the task to be completed.
In current implementations, task progress is tracked on an individual task-by-task basis. That is, the progress of each task is tracked separately, and the information provided to the user pertains only to that task. This works well when each task is its own individual self-contained task. However, if a task (a parent task) spawns other tasks (child tasks) that execute concurrently, and the completion of the parent task is somewhat dependent upon completion of the child tasks, then providing progress information for each individual task is not very helpful because it does not provide the user with a good indication of the overall progress being made. Consequently, for such scenarios, the current implementations are not very effective.